<script>
import { mapState } from "vuex";
export default {
  computed: {
    ...mapState(["vuex_user_id"]),
  },
  mounted() {
    /**官网有很多关于关于sdk 其他的监听方法（比如：有新的消息，用户资料更新等等）
     * 详情可对照： https://imsdk-1252463788.file.myqcloud.com/IM_DOC/Web/SDK.html
     * 监听的含义：服务端发生了数据变更---前端全局可以接收到变更通知--前端就可以自动触发某个事件来更新相应数据
     * */
    // 登录成功后会触发 SDK_READY 事件，该事件触发后，可正常使用 SDK 接口
    this.tim.on(this.$TIM.EVENT.SDK_READY, this.onReadyStateUpdate, this);
    // 收到新消息
    this.tim.on(this.$TIM.EVENT.MESSAGE_RECEIVED, this.onReceiveMessage);
    // 会话列表更新
    this.tim.on(this.$TIM.EVENT.CONVERSATION_LIST_UPDATED, (event) => {
      this.$store.commit("updateConversationList", event.data);
    });
  },
  methods: {
    onReadyStateUpdate({ name }) {
      const isSDKReady = name === this.$TIM.EVENT.SDK_READY ? true : false;
      //自动监听并更新 sdk 的ready 状态 （未登录是 notReady  登录后是ready）
      this.$store.commit("toggleIsSDKReady", isSDKReady);
      //sdk ready 后  肯定完成了登录操作    这里可以获取用户存储在im的基础信息/离线消息/黑名单列表
    },

    onReceiveMessage({ data: messageList }) {
      // this.handleAt(messageList);
      this.$store.commit("pushCurrentMessageList", messageList);
    },
    //根据消息列表请求聊天对象的用户信息 并完成数据拼接
  },
  onLaunch() {
    // console.log('App Launch')
  },
  onShow() {
    // console.log('App Show')
  },
  onHide() {
    // 	console.log('App Hide')
  },
};
</script>

<style lang="scss">
/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
@import "uview-ui/index.scss";
/*每个页面公共css */
@import url("@/static/css/common.css");

.u-btn::after {
  border: none !important;
}
</style>
